<?php
    
    @include_once("conn.php");
    @include_once("common.php");


    $key = $_GET["key"];  //搜索的关键词
    $orderCol = $_GET["orderCol"];  //排序的列名 (id,chinese,math)
    $orderType = $_GET["orderType"];  //排序的方式  方式 (asc desc)
    $pageIndex = $_GET["pageIndex"];  // 显示第几页
    $showNum = $_GET["showNum"];  // 每页显示多少条

    if(!($orderCol&&$orderType&&$pageIndex&&$showNum)){
        argErr();
    }

    // 后端分页   limit  m,n  跳过m条显示n条
    // $pageIndex 页码   $showNum 每页显示多少条
    // 第1页   limit 0,5
    // 第2页   limit 5,5
    // 第3页   limit 10,5

    // $pageIndex  => limit ($pageIndex-1)*$showNum,$showNum   

    // 后端分页 $pageIndex 有可能也会超出最大值 小于最小值 => 加一个边界限制

    // 最大值 = 总数据 / $showNum
    // 最小值 = 1

    // 查询满足条件的总数据
    $searchAll = "select count(*) as count from `goodslist` where goodsName like '%$key%'";
    $resultAll = mysqli_query($conn,$searchAll);
    $item = mysqli_fetch_assoc($resultAll);
    // print_r($item);
    $count = $item["count"];


    $maxPage = ceil($count/$showNum);

    if($pageIndex>=$maxPage){
        $pageIndex=$maxPage;
        // argErr(false,"超出最大页码");
    }
    
    if($pageIndex<1){   //最大值
        $pageIndex = 1;
        // argErr(false,"最小页码为1");
    }

    $skipNum = ($pageIndex-1)*$showNum;

    // 执行查询语句
    $search  = "select id,goodsId,goodsName,goodsPrice,bigPicList from `goodslist` where goodsName like '%$key%' order by $orderCol $orderType limit $skipNum,$showNum";
    // echo $search;
    
    $result = mysqli_query($conn,$search);

    //循环解析数据  先解析 在将结果赋值给$item
    // 解析成功 => 解析的数据 => 继续解析
    // 解析失败 => false    =>跳出循环
    $list = array();
    while($item = mysqli_fetch_assoc($result)){  
        // 数据预处理
        $item["bigPicList"] = explode(",",$item["bigPicList"]);

        array_push($list,$item);
    }


    // 数据处理  
    $msg = array();
    if(count($list)>0){ //count($list)  list.length>0 返回数组的长度
        // echo json_encode($item);
        $msg["status"] = true; 
        $msg["detail"] = "ok"; 

        // 前端可能使用的三条数据  总数据  最大页码  当前页
        $msg["count"] = $count*1; 
        $msg["maxPage"] = $maxPage*1; 
        $msg["current"] = $pageIndex*1;   // 当前页是那一页 (超出最大页时 显示最大页)

        $msg["list"] = $list; 
    }else{
        $msg["status"] = false; 
        $msg["detail"] = "not found"; 
        $msg["list"] = array(); 
    }

    echo json_encode($msg);


    /* {
        status:true,
        detail:"查询成功",
        count,
        maxPage,
        current, 
        data
    } */


    // 单数据  => 直接解析
    // 多数据  => 循环解析 => 放到数组中

?>